/***************************************************
 @Name :        1196kk0
 @Time :        2025-05-26
 @Email :       2232506563@qq.com
 @Comment :     蜂鸣器初始化与操作
 @FileName :    drivers_beep.c
 @Version :     4.0
****************************************************/

#include "drivers_beep.h"

/***************************************
函数名：beep_conifg
函数功能：对beep引脚进行初始化
输入参数：无
输出参数：无
其它：beep -> pa15 低电平关闭
****************************************/
void beep_conifg()
{
    GPIO_InitTypeDef GPIO_InitStruct;
    // 1.开启时钟
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE);
    // 2.配置参数
    // 2.2 配置 GPIO 端口模式  ->  输出模式
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
    // 2.3 配置 GPIO 输出模式  ->  推挽
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    // 2.4 配置 GPIO 输出速度  ->  低速
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
    // 2.5 配置 GPIO 上拉/下拉 ->  上拉
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
    // 写入配置
    // 配置 GPIO 引脚
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
    // 写入配置
    GPIO_Init(GPIOA , &GPIO_InitStruct);
    // 3.设置初始状态
    GPIO_ResetBits(GPIOA , GPIO_Pin_15);
}

/***************************************
函数名：beep_on
函数功能：打开beep
输入参数：无
输出参数：无
其它：beep -> pa15 高电平打开
****************************************/
void beep_on()
{
    GPIO_SetBits(GPIOA , GPIO_Pin_15);
}

/***************************************
函数名：beep_off
函数功能：关闭beep
输入参数：无
输出参数：无
其它：beep -> pa15 低电平关闭
****************************************/
void beep_off()
{
    GPIO_ResetBits(GPIOA , GPIO_Pin_15);
}

/***************************************
函数名：beep_toggle
函数功能：切换beep状态
输入参数：无
输出参数：无
其它：beep -> pa15 
****************************************/
void beep_toggle()
{
    GPIO_ToggleBits(GPIOA , GPIO_Pin_15);
}
